﻿using System;

namespace Bricks
{
    
    /// <summary>
    /// 
    /// </summary>
    /// <typeparam name="TKernel"></typeparam>
    public interface IFacade<TKernel>
    {

        /// <summary>
        /// 
        /// </summary>
        /// <param name="action"></param>
        void Execute(Action<TKernel> action);

        /// <summary>
        /// 
        /// </summary>
        /// <typeparam name="TResult"></typeparam>
        /// <param name="action"></param>
        /// <returns></returns>
        TResult Execute<TResult>(Func<TKernel, TResult> action);
    }
}
